/**    
 * 文件名：Ex1Salt.java    
 *    
 * 版本信息：    
 * 日期：2014年3月7日    
 * xyj 足下 xyj 2014     
 * 版权所有    
 *    
 */
package opencvtest.chapter02;

import static com.googlecode.javacv.cpp.opencv_highgui.CV_LOAD_IMAGE_COLOR;
import static opencvtest.OpenCVUtils.loadMatAndShowOrExit;
import static opencvtest.OpenCVUtils.show;

import java.io.File;
import java.util.Random;

import com.googlecode.javacv.cpp.opencv_core.CvMat;

/**
 * @项目名称：opencv-test
 * @类名称：Ex1Salt
 * @类描述：
 * @创建人：zhuyi
 * @创建时间：2014年3月7日 上午11:02:22
 * @修改人：zhuyi
 * @修改时间：2014年3月7日 上午11:02:22
 * @修改备注：
 * @version
 * 
 */
public class Ex1Salt {

    public static void main(String[] args) {

        CvMat image = loadMatAndShowOrExit(new File("data/boldt.jpg"), CV_LOAD_IMAGE_COLOR);

        CvMat dest = salt(image, 2000);
        show(dest, "Salted");
    }

    private static CvMat salt(CvMat image, int n) {
        int size = image.rows() * image.cols();
        int nbChannels = image.channels();
        Random random = new Random();
        for (int i = 0; i < n; i++) {
            int index = random.nextInt(size);
            int offset = index * nbChannels;
            for (int j = 0; j <= nbChannels; j++) {
                image.put(offset + j, 255);
            }
        }
        return image;
    }
}
